const  express=require('express')
const router=express.Router()

// 导入模型
const { Login }=require('../models')
const md5=require('md5')

// 登录页面
router.get('/login',(req,res)=>{
    res.render('login/login.html')
})

// 登录验证
router.post('/login',async (req,res)=>{
    // 接收表单数据
    const admin_name=req.body.admin_name.trim()
    const admin_password=req.body.admin_password.trim()
    // 数据校验
    if(admin_name===''){
        return res.cc(400,'用户名为空')
    }
    if (admin_password === '') {
        return res.cc(400, '密码为空')
    }
    try{
          // 登录验证
          const result = await Login.findAll({
              where: {
                  admin_name,
                  admin_password: md5(admin_password)
              }
          })
          if (result.length === 0) {
              return res.cc(400, '用户名或者密码不正确')
          }

          // 保持登录状态：由于登录页面有一个功能是否勾选七天免登陆，所以此处需要用session和cookie结合一起来保存用户的的登录状态
          // 接收登录状态
          const login7 = req.body.login7
          if(login7===1){
               // 勾选了7天免登陆，使用cookie来保存登录态
               res.cookie('admin_name',admin_name,{maxAge:3600*24*7})
               res.cookie('is_login',true,{maxAge:3600*24*7})
          }else{
              // 使用session来保存登录态
              req.session.is_login=true
              req.session.admin_name=admin_name
          }
          res.cc(200, '登录成功') 
    }catch(e){
          res.cc(500,e.message)
    }
  
})

// 退出登录
router.get('/logout',(req,res)=>{
   // 清除cookie或者session
   if(req.cookies.is_login){
       res.clearCookie('is_login')
       res.clearCookie('admin_name')
   }
   if(req.session.is_login){
       req.session.is_login=null
       req.session.admin_name=null
   }
   // 跳转到登录页面去
   res.redirect('/login')
})



module.exports = router